//////////////////////////////////////////////////////////////////////////
//	Name: CDXLights.h
//	Purpose: Will Create Lights!!
//	Created: October 24, 2009 - Christian Sassi
//////////////////////////////////////////////////////////////////////////

#pragma once


// The include files for Direct3D9
#include <d3d9.h>
#include <d3dx9.h>

#include <d3d9types.h>


#include "Math.h"

class CDXLights
{
private:
	static CDXLights m_instance;
	CDXLights()								{}
	CDXLights(const CDXLights&)				{}
	CDXLights&	operator=(const CDXLights&)	{	return *this;	}
	~CDXLights()							{}
public:

	static CDXLights* GetInstance()			{	return &m_instance;	}
	//////////////////////////////////////////////////////////////////////////
	//LIGHTS:
	//		-------HOW TO EDIT ATTRIBUTES OF A LIGHT!-------
	//		D3DLIGHT9 light;
	//		HRESULT hr=gD3dDevice->GetLight(1,&light);
	//		light.Diffuse.r=0.5f;
	//		gD3dDevice->SetLight(1,&light);
	//
	//
	//		-------HOW TO TURN ON AND SET A LIGHT!-------
	//		SetLights( 1, &light );
	//		TurnLightsOn( 1, TRUE );
	//////////////////////////////////////////////////////////////////////////


	//////////////////////////////////////////////////////////////////////////
	//	Name: CreateSpotLight
	//	Purpose: Creates a spot light
	//	In: vPos - Where is the light
	//		vDir - Where is it pointing
	//	Out:
	//	Return:	D3DLIGHT9 - The light
	//////////////////////////////////////////////////////////////////////////
	D3DLIGHT9 CreateSpotLight(const vec3f &vPos,const vec3f &vDir);

	//////////////////////////////////////////////////////////////////////////
	//	Name: CreatePointLight
	//	Purpose: Creates a point light
	//	In: vPos - Where is the light
	//	Out:
	//	Return:	D3DLIGHT9 - The light
	//////////////////////////////////////////////////////////////////////////
	D3DLIGHT9 CreatePointLight(const vec3f &vPos);

	//////////////////////////////////////////////////////////////////////////
	//	Name: CreateDirectionalLight
	//	Purpose: Creates a directional light
	//	In: 
	//	Out:
	//	Return:	D3DLIGHT9 - The light
	//////////////////////////////////////////////////////////////////////////
	D3DLIGHT9 CreateDirectionalLight();

};